﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntidadesCompartidas;
using Logica;

namespace Smart_House_System.Cliente
{
    public partial class Formulario_web1 : System.Web.UI.Page
    {
        private static List<Casa> listCasas = null;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            Array rolNames = System.Enum.GetNames(typeof(RolUsuario));

            for (int i = 0; i < rolNames.Length; i++)
            {
                ListItem rol = new ListItem(rolNames.GetValue(i).ToString());
                if (i != 0 && i != 1)
                {
                    comboRol.Items.Add(rol);
                }
            }

            if (!Page.IsPostBack)
            {

                listCasas = FabricaLogica.getLogicaCasa().ListarCasas((Usuario)Session["Usuario"]);
                if (listCasas == null || listCasas.Count == 0)
                {
                    throw new Exception("Usuario no registrado.");
                }
                else
                {
                    cmbCasas.Items.Clear();
                    cmbCasas2.Items.Clear();
                    foreach (Casa c1 in listCasas)
                    {
                        ListItem i2 = new ListItem("Casa " + c1.Id + " - " + c1.Direccion, c1.Id.ToString());
                        cmbCasas.Items.Add(i2);
                        cmbCasas.Visible = true;
                        cmbCasas2.Items.Add(i2);
                        cmbCasas2.Visible = true;
                    }
                }
            }
            Repeater1.DataSource = FabricaLogica.getLogicaUsuario().ListarUsuariosXcasa(listCasas[cmbCasas.SelectedIndex]);
            Repeater1.DataBind();

        }

        protected void btnAlta_Click(object sender, EventArgs e)
        {
            try
            {
                Casa laCasa = listCasas[cmbCasas.SelectedIndex];

                Usuario usu = new Usuario();

                usu.Nombre = txtNombre.Text;
                usu.Apellido = txtApellido.Text;
                usu.User = txtUsuario.Text;
                usu.Pass = txtPassword.Text;
                usu.Ci = int.Parse(txtCedula.Text);
                if (comboRol.SelectedItem.Value == "habSecundario")
                {
                    usu.ElRol = RolUsuario.habSecundario;
                }
                else if (comboRol.SelectedItem.Value == "habTerciario")
                {
                    usu.ElRol = RolUsuario.habTerciario;
                }
                if (FabricaLogica.getLogicaUsuario().AltaUsuarioXCasa(usu, laCasa) == 1)
                {
                    Response.Redirect("~/Cliente/homecliente.aspx");
                }
                else
                {
                    lblMensaje.Text = "ERROR al hacer el Alta";
                }
            }
            catch (Exception ex)
            {
                lblMensaje.Text = ex.Message;
            }
        }

        protected void cmbCasas2_SelectedIndexChanged(object sender, EventArgs e)
        {
            Casa mic = new Casa();
            mic = listCasas[cmbCasas2.SelectedIndex];
            Repeater1.DataSource = FabricaLogica.getLogicaUsuario().ListarUsuariosXcasa(mic);
            Repeater1.DataBind();
        }
    }
}